#pragma once

#include <Windows.h>

#include "TileState.h"

class PaintUtils {
public: 
	static PaintUtils* inst();
	~PaintUtils();

	HGDIOBJ ActiveTileBrush(){ return static_cast<HGDIOBJ>(mActiveTileBrush); }
	HGDIOBJ InactiveTileBrush(){ return static_cast<HGDIOBJ>(mInactiveTileBrush); }
	HGDIOBJ EmptyTileBrush(){ return static_cast<HGDIOBJ>(mEmptyTileBrush); }
	HGDIOBJ TileBrushFromState(TileState& _state);

	static COLORREF TileFontColorFromState(TileState& _state);
	static void DrawBagTile(HDC _surface, RECT& _rect, TileState& _state);
	static void DrawBoardTile(HDC _surface, RECT& _rect, TileState& _state);
	static void DrawTileLetter( HDC _surface, RECT& _rect, char _letter, TileState& _state );

private:
	static PaintUtils* _instance;

	static HBRUSH mActiveTileBrush;
	static HBRUSH mInactiveTileBrush;
	static HBRUSH mEmptyTileBrush;

	PaintUtils();
};


